package com.example.foratm.example.idgenerator.second;

/**
 * 命名方式1 IdGenerator LogTraceIdGenerator
 * 问题：LogTraceIdGenerator 过于通用，后面想扩展日志其他方式的id不好扩展；
 * 基于接口的编程是考虑到实现类项目替换，后面如果拓展 其他id生成，如UserIdGenerator 等，实际应用场景也不会和日志的互换
 * 命名方式2 LogTraceIdGenerator HostNameMillisIdGenerator
 * 问题：HostNameMillisIdGenerator 暴露太多实现细节，稍微一改逻辑可能就需要修改名称
 * 命名方式3 LogTraceIdGenerator RandomIdGenerator （推荐）
 */
public interface LogTraceIdGenerator {

    /**
     * 生成 id
     */
    String generate() throws Exception;
}
